home *** CD-ROM | disk | FTP | other *** search
- ------------- Listing 1: The file iomanip ------------------
-
- // iomanip standard header<R>
- #ifndef _IOMANIP_<R>
- #define _IOMANIP_<R>
- #include <<istream>><R>
- #include <<ostream>><R>
- // template class smanip<R>
- template<<class _T>> class smanip {<R>
- public:<R>
- smanip(ios& (*_F)(ios&, _T), _T _A)<R>
- : _Pf(_F), _Manarg(_A) {}<R>
- ios& (*_Pf)(ios&, _T);<R>
- _T _Manarg;<R>
- };<R>
- template<<class _T>> inline<R>
- istream& operator>>>>(istream& _I, const smanip<<_T>>& _M)<R>
- { // apply manipulator to input stream<R>
- _TRY_BEGIN<R>
- (*_M._Pf)(_I, _M._Manarg);<R>
- _CATCH_ALL<R>
- _I.setstate(ios::failbit);<R>
- _CATCH_END<R>
- return (_I);<R>
- }<R>
- template<<class _T>> inline<R>
- ostream& operator<<<<(ostream& _O, const smanip<<_T>>& _M)<R>
- { // apply manipulator to output stream<R>
- _TRY_BEGIN<R>
- (*_M._Pf)(_O, _M._Manarg);<R>
- _CATCH_ALL<R>
- _O.setstate(ios::failbit);<R>
- _CATCH_END<R>
- return (_O);<R>
- }<R>
- // template class imanip<R>
- template<<class _T>> class imanip {<R>
- public:<R>
- imanip(istream& (*_F)(istream&, _T), _T _A)<R>
- : _Pf(_F), _Manarg(_A) {}<R>
- istream& (*_Pf)(istream&, _T);<R>
- _T _Manarg;<R>
- };<R>
- template<<class _T>> inline<R>
- istream& operator>>>>(istream& _I, const imanip<<_T>>& _M)<R>
- { // apply input manipulator to input stream<R>
- _TRY_BEGIN<R>
- (*_M._Pf)(_I, _M._Manarg);<R>
- _CATCH_ALL<R>
- _I.setstate(ios::failbit);<R>
- _CATCH_END<R>
- return (_I);<R>
- }<R>
- // template class omanip<R>
- template<<class _T>> class omanip {<R>
- public:<R>
- omanip(ostream& (*_F)(ostream&, _T), _T _A)<R>
- : _Pf(_F), _Manarg(_A) {}<R>
- ostream& (*_Pf)(ostream&, _T);<R>
- _T _Manarg;<R>
- };<R>
- template<<class _T>> inline<R>
- ostream& operator<<<<(ostream& _O, const omanip<<_T>>& _M)<R>
- { // apply manipulator to output stream<R>
- _TRY_BEGIN<R>
- (*_M._Pf)(_O, _M._Manarg);<R>
- _CATCH_ALL<R>
- _O.setstate(ios::failbit);<R>
- _CATCH_END<R>
- return (_O);<R>
- }<R>
- // instantiations<R>
- smanip<<ios::fmtflags>> resetiosflags(ios::fmtflags);<R>
- smanip<<ios::fmtflags>> setiosflags(ios::fmtflags);<R>
- smanip<<int>> setbase(int);<R>
- smanip<<int>> setfill(int);<R>
- smanip<<int>> setprecision(int);<R>
- smanip<<int>> setw(int);<R>
- #endif
-
-